package com.dr.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.dr.pojo.Dept;
import com.dr.pojo.User;
import com.dr.service.DeptService;
import com.dr.service.UserService;

// @RestController == @Controller +  @ResponseBody
@Controller
@RequestMapping("/um_ajax")
public class UserController_ajax {
	@Autowired
	private UserService userService;//	Spring注入ServiceImpl的实例
	@Autowired
	private DeptService deptService;
	
	/* 
	 * 	显示用户列表页面，加载所有用户信息
	 */
	@ResponseBody
	@RequestMapping("/userList")
	public Map<String,Object> userList(User user) {
		List<User> userList = userService.findUserList(); //	取得用户列表数据
		
		Map<String,Object> map = new HashMap<>();
		map.put("status", "1");		// 	返回标记
		map.put("userList", userList); //	把用户数据加载到页面中
		 				
		return map;
	}
	
	/*  
	 * 	根据页面输入的内容查询用户信息
	 */
	@ResponseBody
	@RequestMapping("/userListByName")
	public Map<String,Object> userListByName(User user) {
		List<User> userList = userService.findUserByName(user.getAccount()); //	根据页面输入的值取得用户数据
		
		Map<String,Object> map = new HashMap<>();
		map.put("status", "1");
		map.put("userList", userList); //	把用户数据加载到页面中
				
		return map;
	}
	
	/*  
	 * 	打开新增用户页面
	 */
	@RequestMapping("/toAdd")
	public ModelAndView toAdd() {
		List<Dept> deptList = deptService.findDeptList();
		
		ModelAndView mav = new ModelAndView();
		mav.setViewName("userManage/userAdd.jsp");
		mav.addObject("deptList", deptList);
		
		return mav; 
	}
	
	/*  
	 * 	执行新增用户
	 */
//	@RequestMapping("/doAdd")
//	public ModelAndView doAdd(User user, HttpSession session) {
//		User addUser = userService.findUserByAccount(user.getAccount());
//		//	判断待新增用户是否存在
//		if(addUser != null) {
//			//	如果存在则提示账户重复，返回到新增页面
//			ModelAndView mav = toAdd();
//			mav.addObject("attrInfoUserAdd", "账户已存在！");
//			return mav;
//		}else {
//			//	不存在则新增用户，返回到List页面，
//			userService.insertUser(user, session);
//			return userList(user);
//		}				
//	}
	
	/*  
	 * 	打开修改用户页面
	 */
	@RequestMapping("/toUpdate")
	public ModelAndView toUpdate(Integer id) {
		List<Dept> deptList = deptService.findDeptList();
		User user = userService.findUserById(id);
		
		ModelAndView mav = new ModelAndView();
		mav.setViewName("userManage/userUpdate.jsp");
		mav.addObject("deptList", deptList);
		mav.addObject("user", user);
		
		return mav; 
	}
	
	/*  
	 * 	执行修改用户
	 */
//	@RequestMapping("/doUpdate")
//	public ModelAndView doUpdate(User user, HttpSession session) {				
//			userService.updateUser(user, session);
//			return userList(user);					
//	}
	
	/*  
	 * 	执行删除用户
	 */
//	@RequestMapping("/doDelete")
//	public ModelAndView doDelete(User user, HttpSession session) {				
//			userService.deleteUser(user, session);
//			return userList(user);					
//	}
}
